Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onboarding remove identifiers code and refactor create_or_sync_profile screen #21668

Merged
merged 2 commits into from
Dec 24, 2024

Conversation

Parveshdhull
Copy link
Member

@Parveshdhull Parveshdhull commented Nov 25, 2024

Summary

  • PR Removes unused identifiers screen code
  • Refactors create-or-sync-profile screen and breaks into two different screens (create-profile and log-in)
  • Original issue Refactor onboarding #21650 also had in scope removal of overlay and blur for ios, and was implemented in dc4ad41. But this change needs to discussed, so removed it from final PR.

Testing

Please lightly test onboarding flow to make sure cleanup is not breaking it.

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Nov 25, 2024

Jenkins Builds

Click to see older builds (55)
Commit #️⃣ Finished (UTC) Duration Platform Result
860e77b #1 2024-11-25 09:01:14 ~44 sec ios 📄log
860e77b #1 2024-11-25 09:01:20 ~54 sec android 📄log
336f1cb #2 2024-11-25 09:02:05 ~26 sec ios 📄log
336f1cb #2 2024-11-25 09:02:21 ~47 sec android 📄log
336f1cb #2 2024-11-25 09:02:21 ~47 sec android-e2e 📄log
336f1cb #2 2024-11-25 09:04:35 ~2 min tests 📄log
cf765f2 #3 2024-12-05 10:28:47 ~31 sec android-e2e 📄log
cf765f2 #3 2024-12-05 10:28:52 ~28 sec ios 📄log
cf765f2 #3 2024-12-05 10:29:01 ~44 sec android 📄log
cf765f2 #3 2024-12-05 10:30:28 ~2 min tests 📄log
e696b3b #4 2024-12-15 08:47:53 ~30 sec ios 📄log
e696b3b #4 2024-12-15 08:47:58 ~35 sec android 📄log
e696b3b #4 2024-12-15 08:47:58 ~35 sec android-e2e 📄log
e696b3b #4 2024-12-15 08:49:36 ~2 min tests 📄log
634b7dd #5 2024-12-15 09:08:55 ~2 min tests 📄log
✔️ 634b7dd #5 2024-12-15 09:13:03 ~7 min ios 📱ipa 📲
✔️ 634b7dd #5 2024-12-15 09:13:14 ~7 min android 🤖apk 📲
✔️ 634b7dd #5 2024-12-15 09:13:50 ~7 min android-e2e 🤖apk 📲
3e06e32 #6 2024-12-15 09:31:57 ~2 min tests 📄log
✔️ 3e06e32 #6 2024-12-15 09:36:05 ~7 min ios 📱ipa 📲
✔️ 3e06e32 #6 2024-12-15 09:37:59 ~9 min android-e2e 🤖apk 📲
✔️ 3e06e32 #6 2024-12-15 09:38:30 ~9 min android 🤖apk 📲
57cad6a #7 2024-12-15 10:11:24 ~2 min tests 📄log
✔️ 57cad6a #7 2024-12-15 10:15:17 ~6 min ios 📱ipa 📲
✔️ 57cad6a #7 2024-12-15 10:17:12 ~8 min android-e2e 🤖apk 📲
✔️ 57cad6a #7 2024-12-15 10:17:48 ~9 min android 🤖apk 📲
✔️ ee780c2 #8 2024-12-15 10:47:50 ~5 min tests 📄log
✔️ 436a8e3 #9 2024-12-15 10:53:13 ~4 min tests 📄log
✔️ 436a8e3 #9 2024-12-15 10:55:35 ~7 min android 🤖apk 📲
✔️ 436a8e3 #9 2024-12-15 10:55:43 ~7 min ios 📱ipa 📲
✔️ 436a8e3 #9 2024-12-15 10:56:28 ~7 min android-e2e 🤖apk 📲
✔️ 2b35b5d #10 2024-12-15 11:06:35 ~5 min tests 📄log
✔️ 2b35b5d #10 2024-12-15 11:08:22 ~6 min ios 📱ipa 📲
✔️ 2b35b5d #10 2024-12-15 11:10:36 ~9 min android-e2e 🤖apk 📲
✔️ 2b35b5d #10 2024-12-15 11:11:10 ~9 min android 🤖apk 📲
dc4ad41 #11 2024-12-19 09:07:56 ~3 min tests 📄log
✔️ dc4ad41 #11 2024-12-19 09:11:45 ~7 min ios 📱ipa 📲
✔️ dc4ad41 #11 2024-12-19 09:13:52 ~9 min android-e2e 🤖apk 📲
✔️ dc4ad41 #11 2024-12-19 09:14:20 ~9 min android 🤖apk 📲
✔️ 1c6e970 #12 2024-12-19 09:53:34 ~4 min tests 📄log
✔️ 1c6e970 #12 2024-12-19 09:55:34 ~6 min ios 📱ipa 📲
✔️ 1c6e970 #12 2024-12-19 09:55:58 ~7 min android 🤖apk 📲
✔️ 1c6e970 #12 2024-12-19 09:56:40 ~8 min android-e2e 🤖apk 📲
✔️ 1e50173 #13 2024-12-19 10:04:34 ~4 min tests 📄log
✔️ 1e50173 #13 2024-12-19 10:07:22 ~7 min ios 📱ipa 📲
✔️ 1e50173 #13 2024-12-19 10:08:06 ~7 min android-e2e 🤖apk 📲
✔️ 1e50173 #13 2024-12-19 10:08:37 ~8 min android 🤖apk 📲
✔️ 063a94c #15 2024-12-20 09:33:54 ~4 min tests 📄log
✔️ 063a94c #15 2024-12-20 09:35:51 ~6 min android-e2e 🤖apk 📲
✔️ 063a94c #15 2024-12-20 09:36:07 ~6 min ios 📱ipa 📲
✔️ 063a94c #15 2024-12-20 09:37:21 ~8 min android 🤖apk 📲
✔️ 85c0511 #16 2024-12-20 10:24:46 ~4 min tests 📄log
✔️ 85c0511 #16 2024-12-20 10:27:32 ~7 min ios 📱ipa 📲
✔️ 85c0511 #16 2024-12-20 10:28:44 ~8 min android-e2e 🤖apk 📲
✔️ 85c0511 #16 2024-12-20 10:29:11 ~8 min android 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 4eb38c7 #17 2024-12-20 12:00:04 ~5 min tests 📄log
✔️ 4eb38c7 #17 2024-12-20 12:01:46 ~6 min ios 📱ipa 📲
✔️ 4eb38c7 #17 2024-12-20 12:04:02 ~9 min android-e2e 🤖apk 📲
✔️ 4eb38c7 #17 2024-12-20 12:04:30 ~9 min android 🤖apk 📲
✔️ 79ffc74 #18 2024-12-24 15:53:30 ~6 min tests 📄log
✔️ 79ffc74 #18 2024-12-24 15:54:37 ~7 min android 🤖apk 📲
✔️ 79ffc74 #18 2024-12-24 15:56:27 ~9 min android-e2e 🤖apk 📲
✔️ 79ffc74 #18 2024-12-24 15:59:30 ~12 min ios 📱ipa 📲

@Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch from 860e77b to 336f1cb Compare November 25, 2024 09:01
@Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch from 336f1cb to cf765f2 Compare December 5, 2024 10:28
@Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch 8 times, most recently from dc4ad41 to 1c6e970 Compare December 19, 2024 09:48
@Parveshdhull Parveshdhull changed the title [WIP]: Refactor onboarding [WIP]: Onboarding remove identifiers code and refactor create_or_sync_profile screen Dec 19, 2024
@Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch 3 times, most recently from e414922 to 063a94c Compare December 20, 2024 09:28
@Parveshdhull Parveshdhull changed the title [WIP]: Onboarding remove identifiers code and refactor create_or_sync_profile screen Onboarding remove identifiers code and refactor create_or_sync_profile screen Dec 20, 2024
@@ -0,0 +1,101 @@
(ns status-im.contexts.onboarding.create-profile.view
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactored the create-or-sync-profile screen and split it into two separate screens:
('Create Profile' and 'Log In - as per figma)

@Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch from 063a94c to 85c0511 Compare December 20, 2024 10:20
@Parveshdhull Parveshdhull marked this pull request as ready for review December 20, 2024 10:49
src/status_im/contexts/onboarding/create_profile/view.cljs Outdated Show resolved Hide resolved
src/status_im/contexts/onboarding/log_in/view.cljs Outdated Show resolved Hide resolved
[utils.i18n :as i18n]
[utils.re-frame :as rf]))

(defn- navigate-to-create-profile-password
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don we have this in every control ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @flexsurfer, for reviewing the PR.

Are you asking if we need the create-profile-password in both the create-profile and login flows? Yes, we do.

For the create profile flow, we are directly navigating to the create-profile-password screen here. However, for the login flow, navigation to the password screen occurs after the seed phrase is validated.

@status-im-auto
Copy link
Member

38% of end-end tests have passed

Total executed tests: 8
Failed tests: 5
Expected to fail tests: 0
Passed tests: 3
IDs of failed tests: 727230,727231,740490,727229,702843 

Failed tests (5)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    Test setup failed: critical/test_wallet.py:22: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:330: in create_shared_drivers
        raise e
    base_test_case.py:320: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    2. test_wallet_send_eth, id: 727229

    Test setup failed: critical/test_wallet.py:22: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:330: in create_shared_drivers
        raise e
    base_test_case.py:320: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231

    Test setup failed: critical/test_wallet.py:198: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(1)
    base_test_case.py:330: in create_shared_drivers
        raise e
    base_test_case.py:320: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    2. test_wallet_balance_mainnet, id: 740490

    Test setup failed: critical/test_wallet.py:198: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(1)
    base_test_case.py:330: in create_shared_drivers
        raise e
    base_test_case.py:320: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Device 1: Find AllowButton by xpath: //*[@text="Allow" or @text="ALLOW"]
    Device 1: Click system back button

    Test setup failed: critical/chats/test_public_chat_browsing.py:309: in prepare_devices
        self.loop.run_until_complete(run_in_parallel(((self.device_1.create_user, {'enable_notifications': True}),
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:242: in create_user
        self.create_profile_button.click_until_presence_of_element(self.start_fresh_lets_go_button)
    ../views/base_element.py:107: in click_until_presence_of_element
        while not desired_element.is_element_displayed(1) and counter <= attempts:
    ../views/base_element.py:221: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:145: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     error processing request. If this error persists, please contact SauceLabs support.
    



    Device sessions

    Passed tests (3)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    @mariia-skrypnyk mariia-skrypnyk self-assigned this Dec 20, 2024
    @status-im-auto
    Copy link
    Member

    91% of end-end tests have passed

    Total executed tests: 56
    Failed tests: 3
    Expected to fail tests: 2
    Passed tests: 51
    
    IDs of failed tests: 727230,702786,727229 
    
    IDs of expected to fail tests: 702948,703629 
    

    Failed tests (3)

    Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find `Button` by `xpath`: `//android.view.ViewGroup[contains(@content-desc,'Account 1')]`

    critical/test_wallet.py:163: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:41: in _get_balances_before_tx
        self.wallet_1.get_account_element().click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//android.view.ViewGroup[contains(@content-desc,'Account 1')]` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Tap on found: Button
    Device 1: Find Button by xpath: //*[@content-desc='network-list']/*[@text='Arbitrum']

    critical/test_wallet.py:137: in test_wallet_send_eth
        self.wallet_1.send_asset(address='arb1:' + self.receiver['wallet_address'],
    ../views/wallet_view.py:160: in send_asset
        self.select_network(network_name)
    ../views/wallet_view.py:135: in select_network
        xpath="//*[@content-desc='network-list']/*[@text='%s']" % network_name).click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='network-list']/*[@text='Arbitrum']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_mentions_push_notification, id: 702786

    Device 1: Long press on ChatElementByText until expected element is shown
    Device 1: Find Button by accessibility id: reaction-sad

    critical/chats/test_public_chat_browsing.py:901: in test_community_mentions_push_notification
        self.channel_1.set_reaction(message=self.username_1, emoji="sad")
    ../views/chat_view.py:1061: in set_reaction
        element.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `reaction-sad` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'#cats')]
    Device 2: Looking for a message by text: it is just a message text

    critical/chats/test_public_chat_browsing.py:1124: in test_community_hashtag_links_to_community_channels
        self.errors.verify_no_errors()
    base_test_case.py:192: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629

    Device 2: Looking for community: 'open community'
    Device 2: Click until Text by accessibility id: community-description-text will be presented

    critical/chats/test_public_chat_browsing.py:1212: in test_community_join_when_node_owner_offline
        self.errors.verify_no_errors()
    base_test_case.py:192: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message in community channel is not visible for user before join, it was indicated as not sent for the sender before he went offline 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    Device sessions

    Passed tests (51)

    Click to expand

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    2. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    3. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    5. test_community_unread_messages_badge, id: 702841
    Device sessions

    6. test_community_message_delete, id: 702839
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    9. test_community_one_image_send_reply, id: 702859
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    6. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845
    Device sessions

    2. test_community_markdown_support, id: 702809
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    6. test_community_discovery, id: 703503
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054
    2. test_fallback_sync_with_error, id: 740220
    3. test_fallback_with_correct_seed_phrase, id: 740221
    4. test_fallback_validate_seed_phrase, id: 740222

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    Device sessions

    @mariia-skrypnyk
    Copy link

    Hey @Parveshdhull !

    Tested PR on both platforms.
    E2E test looks good.
    Thanks for your PR it can be merged.

    @Parveshdhull Parveshdhull force-pushed the chore/refactor-onboarding branch from 4eb38c7 to 79ffc74 Compare December 24, 2024 15:47
    @Parveshdhull Parveshdhull merged commit 247674b into develop Dec 24, 2024
    5 checks passed
    @Parveshdhull Parveshdhull deleted the chore/refactor-onboarding branch December 24, 2024 16:04
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: DONE
    Development

    Successfully merging this pull request may close these issues.

    5 participants